/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package SnpDbHndInterfaces;

import SnpDbEntities.Snippet;
import java.rmi.RemoteException;
import java.util.LinkedHashMap;

/**
 *
 * @author Łukasz 'byku' Guzik
 */
public interface DBSnpHandling extends java.rmi.Remote
{
    int addPrivateSnippet(Snippet newSnippet) throws RemoteException;

    Snippet getPrivateSnippet(int id, boolean withData) throws RemoteException;

    LinkedHashMap<Integer, Snippet> getAllPrivateSnippets() throws
	    RemoteException;

    boolean deletePrivateSnippet(int id) throws RemoteException;

    boolean updatePrivateSnippet(Snippet updateSnippet, boolean withData) throws
	    RemoteException;

    Snippet getPublicSnippet(int id, boolean withData) throws RemoteException;

    LinkedHashMap<Integer, Snippet> getAllPublicSnippets() throws
	    RemoteException;

    boolean addToPublishQueue(int privateSnippetID, int publicCategoryId) throws RemoteException;

    LinkedHashMap<Integer, Snippet> getSnippetsToPublish() throws
	    RemoteException;

    boolean publish(int id) throws RemoteException;

    boolean unpublish(int id) throws RemoteException;

    boolean removeFromPublishQueue(int id) throws RemoteException;

    boolean updatePublicSnippet(Snippet newSnippetData, boolean withData) throws
	    RemoteException;
}
